package com.csw.android.player.base

import android.view.SurfaceView
import android.view.TextureView

/**
 * 媒体播放器接口
 */
interface IMediaPlayer {
    /** 播放器id，每个播放器实例在初始化都会生成唯一id用于识别 */
    val playId: String

    /** 播放列表 */
    val playList: PlayList?

    /** 播放器状态信息 */
    val playerInfo: PlayerInfo?

    /** 播放器持有者，设置时会将此播放器实例设置到播放器持有者中 */
    var playerHolder: IPlayerHolder?

    /** 媒体信息 */
    var mediaInfo: MediaInfo?

    /** 播放 */
    fun play()

    /** 暂停 */
    fun pause()

    /** 重置 */
    fun reset()

    /** 释放 */
    fun release()

    /** 当前是否处于播放中 */
    fun isPlaying(): Boolean

    /** 获取内容时长 */
    fun getContentDuration(): Long

    /** 获取内容播放进度 */
    fun getContentProgress(): Long

    /** 设置内容播放进度 */
    fun setContentProgress(progress: Long)

    /** 设置[surfaceView]为渲染视图 */
    fun setSurfaceView(surfaceView: SurfaceView?)

    /** 设置[textureView]为渲染视图 */
    fun setTextureView(textureView: TextureView?)

}